import numpy as np

# ndarray.shape 返回值一个由数组维度构成的元组，比如 2 行 3 列的二维数组可以表示为(2,3)
a = np.array([[2, 4, 6], [3, 5, 7]])
print(a.shape)  # (2,3)

a.shape = (3, 2)
print(a)  # [[1, 2] [3, 4] [5, 6]]

# ndarray.reshape() 调整数组形状
a = np.array([[1, 2, 3], [4, 5, 6]])
b = a.reshape(3, 2)
print(b)  # [[1, 2][3, 4][5, 6]]

# ndarray.ndim 该属性返回的是数组的维数
# 随机生成一个一维数组
c = np.arange(24)
print(c)  # [ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23]
print(c.ndim)  # 1
# 对数组进行变维操作
e = c.reshape(2, 4, 3)
print(e)
print(e.ndim)  # 3

# ndarray.itemsize  返回数组中每个元素的大小（以字节为单位）
x = np.array([1, 2, 3, 4, 5], dtype=np.int8)
print(x.itemsize)  # 1
x = np.array([1, 2, 3, 4, 5], dtype=np.int64)
print(x.itemsize)  # 8

# ndarray.flags 返回 ndarray 数组的内存信息，比如 ndarray 数组的存储方式
x = np.array([1, 2, 3, 4, 5])
print(x.flags)
# C_CONTIGUOUS : True
# F_CONTIGUOUS : True
# OWNDATA : True
# WRITEABLE : True
# ALIGNED : True
# WRITEBACKIFCOPY : False
# UPDATEIFCOPY : False

